 %MACRO CVWRITE; 

       data _null_;
       %let _EFIERR_ = 0; /* set the ERROR detection macro variable */
       %let _EFIREC_ = 0;     /* clear export record count macro variable */
       file "C:\AHRQQI\PDI\GEE_&PD..csv" delimiter=',' DSD DROPOVER lrecl=32767;
       if _n_ = 1 then        /* write column names or labels */
        do;
          put
             "KEY" ',' "HOSPID" ',' "YT&PD." ',' "P1"
          %DO I = 1 %TO &Z.;
         ','
             "ZCV&I."
          %END;
          %DO I = 1 %TO &X.;
         ','
             "XCV&I."
          %END;
          ;
        end;
      set TEMP1Y   end=EFIEOD;
          format KEY z14. ;
          format HOSPID best17. ;
          format YT&PD. best12. ;
          format P1 best12. ;
          %DO I = 1 %TO &Z.;
          format ZCV&I. best12. ;
          %END;
          %DO I = 1 %TO &X.;
          format XCV&I. best12. ;
          %END;
       do;
         EFIOUT + 1;
         put KEY @;
         put HOSPID  @;
         put YT&PD. @;
         put P1 @;
         %DO I = 1 %TO &Z.;
         put ZCV&I. @;
         %END;
         %DO I = 1 %TO &X.-1;
         put XCV&I. @;
         %END;
         put XCV&X. ;
         ;
       end;
      if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */
      if EFIEOD then call symputx('_EFIREC_',EFIOUT);
      run;
      
 %MEND;

 %CVWRITE;

 
 %MACRO PRED;

 %IF &N. = 1 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PPD01.xml';

 RUN;

 %END;

 %IF &N. = 2 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PPD02.xml';

 RUN;

 %END;

 %IF &N. = 5 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PPD05.xml';

 RUN;

 %END;

 %IF &N. = 6 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PPD06.xml';

 RUN;

 %END;

 %IF &N. = 8 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PPD08.xml';

 RUN;

 %END;

 %IF &N. = 9 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PPD09.xml';

 RUN;

 %END;

 %IF &N. = 10 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PPD10.xml';

 RUN;

 %END;

 %IF &N. = 11 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PPD11.xml';

 RUN;

 %END;

 %IF &N. = 12 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PPD12.xml';

 RUN;

 %END;

 %IF &N. = 70 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PNQ01.xml';

 RUN;

 %END;

 %IF &N. = 71 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PNQ02.xml';

 RUN;

 %END;

 %IF &N. = 72 %THEN %DO;

 DATA _NULL_;

 X 'C:\AHRQQI\AHRQPrediction\AHRQ.exe C:\AHRQQI\PDI\Prediction_PNQ03.xml';

 RUN;

 %END;

 %MEND PRED;

 %PRED;
 
 
 %MACRO CVREAD;
      data TEMP1I                                   ;
      %let _EFIERR_ = 0; /* set the ERROR detection macro variable */
      infile "C:\AHRQQI\PDI\GEE_&PD._IndividualPredictions.csv" delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ;
         informat Key best32. ;
         informat HospitalID best32. ;
         informat Y best32. ;
         informat Y_Z best32. ;
         informat Y_X best32. ;
         informat Y_P_0 best32. ;
         informat Y_X_P_0 best32. ;
         informat Y_X_P_0_MCMC best32. ;
         informat P best32. ;
         informat P_X best32. ;
         informat P_Y_P_X_Z best32. ;
         format Key best12. ;
         format HospitalID best17. ;
         format Y best12. ;
         format Y_Z best12. ;
         format Y_X best12. ;
         format Y_P_0 best12. ;
         format Y_X_P_0 best12. ;
         format Y_X_P_0_MCMC best12. ;
         format P best12. ;
         format P_X best12. ;
         format P_Y_P_X_Z best12. ;
      input
                  Key
                  HospitalID  
                  Y
                  Y_Z
                  Y_X
                  Y_P_0
                  Y_X_P_0
                  Y_X_P_0_MCMC
                  P 
                  P_X
                  P_Y_P_X_Z
      ;
      if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */
      run;
      data TEMP1I;
	  set TEMP1I;
	  rename HospitalID=HOSPID;
      run;

%MEND;

%CVREAD;

